This invention relates to representing an image.
The process of finding and retrieving images stored on electronic media (e.g., a computer, the Internet) has become increasingly difficult for a variety of reasons. For instance, with the explosive growth of the Internet, the number of searchable images available on the Internet has dramatically increased. With the increased number of images, the abilities of conventional systems, methods, and computer programs to perform searching and retrieval functions in an efficient, useful, and timely manner have been challenged.
The ability of conventional systems, methods, and computer programs to efficiently find and retrieve desired images in a database has been hampered by poor organization and inconsistent formatting of the images being searched and/or retrieved. Similar problems also may be experienced by other electronic applications involving a large quantity of images that may be searched for and retrieved. These problems may be compounded when the desired search result includes multiple formats (e.g., images and text).
In one general aspect, representing an image includes extracting several types of information about the image that are used to compute a joint histogram. A weighting factor may be applied to at least one of the types of information extracted about the image such that the joint histogram represents a weighted joint histogram.
Implementations may include one or more of the following features. For example, the weighting factor may be derived based on at least one type of information extracted about the image that differs from the types of information used to compute the joint histogram.
Representing an image may further include calculating a posterized joint histogram. For example, the posterized joint histogram may be calculated after the weighting factor has been applied. Information reflecting more than one feature of the image may be extracted from the image. Extracted features may include color, edge density, texturedness, gradient magnitude, and rank.
A joint histogram may be computed by computing a first histogram vector based on the extracted information reflecting several features of the image. The first histogram vector may include one or more vector elements, each representing information for a different combination of features extracted about the image.
A posterized joint histogram may be calculated by identifying multiple subsets within at least one of the vector elements included in the first histogram vector. A second histogram vector then may be created, with the second histogram including a vector element for each of the subsets identified within the vector elements included in the first histogram vector, and thus representing a posterized joint histogram. Data within the vector elements of the second histogram represent the extracted image features.
A weighting factor may be applied by extracting one or more additional types of information about the image that differ from the types of information used to compute the joint histogram. The joint histogram generally includes one or more vector elements. The additional types of information may be used to determine whether to modify a vector element value in the joint histogram based on the additional information that was extracted about the image. The additional types of information may include a centeredness feature about each pixel in the image, which may be used to determine whether to modify the one or more vector element values in the joint histogram. The weighting factor may be applied based on information that differs from the information used to compute the joint histogram.
In another general aspect, a representation of an image includes a first vector element having a first value to which a weighting factor has been applied. The first value indicates whether a first combination of features extracted about the image are within a weighted range. The representation of the image also may include a second vector element that differs from the first vector element and that includes a second value to which a weighting factor has been applied. The second value indicates whether a second combination of features are within a weighted range.
These general and specific aspects may be implemented using a system, a method, or a computer program, or any combination of systems, methods, and computer programs.